跳到主要内容

Stable Diffusion Web UI(AI绘图)安装及使用教程

文章信息

创建日期:2024年9月11日

AI绘图面世快两年了,现在绘图模型越来越厉害,已经可以达到商业跑图的要求。Stable Diffusion作为免费开源的最厉害的跑图的深度学习模型,无疑是平民玩家的首选。

前言

Stable Diffusion Web UI(以下简称SDW)是一个用于运行和管理 Stable Diffusion 模型的用户界面工具,本篇便是对于此工具的教程。SDW也不并不是所有电脑都可以运行的,拥有一张至少4G显存的电脑是最低的要求。虽然也可以调用CPU跑图,但是经过测试,一张512*512分辨率的图片至少需要12小时,还不如自己手画。

sd.ifdess.cn 项目

看到这里,推荐给大家一个网站 https://sd.ifdess.cn, 这是一个运行在博主电脑上的在线AI绘图模型。其原理为使用博主的电脑部署SDW,开启SDW自带的局域网共享,再通过服务器和FRP工具实现内网穿透。经过测试,跑一张512*512分辨率的图需要25-30秒。理论上说只要博主电脑不关机、不断网,那么这个网站可以一直存活。那么SDW现在教程开始,以下教程适用于Windows 10/11 64位。

sd.ifdess.cn 已失效

因为博主我越来越懒了,之前觉得电脑开着不管它就行,但是电脑总是需要用来做别的事情,并且经常会要重启,所以现在正式宣布https://sd.ifdess.cn项目无限期关闭。

安装SDW

前置任务

  • 安装显卡驱动(注意软件安装时的流氓勾选)
  • 安装VC++运行库(推荐直接安装微软运行库合集)
  • 自备魔法(网络加速)

方法一(推荐)

  1. 下载sd.webui.zip,此包自带Python及Git运行环境,相当于便携版本,可以放在U盘里,在任何符合条件的电脑上运行。
  2. 将下载好的zip文件解压到所需位置。
  3. 双击sd.ifdess文件夹中的update.bat, Web UI会自动更新到最新版本,等完成后关闭窗口。
  4. 双击run.bat启动 Web UI,首次启动时会下载大量文件。所有内容下载并正确安装后,窗口中有很多内容,其中包含一条消息“Running on local URL:  http://127.0.0.1:7860”,浏览器打开http://127.0.0.1:7860将显示 Web UI 界面。

方法二

  1. 安装Python 3.10.6(64 位)(安装时勾选“添加到 PATH”)。
  2. 安装Git, 安装时一路next。
  3. 从搜索栏打开CMD命令提示符,然后输入
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

或者直接下载SDW的master分支,然后解压。

  1. 双击解压后文件夹中的webui-user.bat,首次启动时会下载大量文件。所有内容下载并正确安装后,窗口中有很多内容,其中包含一条消息“Running on local URL:  http://127.0.0.1:7860”,浏览器打开http://127.0.0.1:7860将显示 Web UI 界面。

安装绘图模型

教程

模型的安装比较简单,模型文件的后缀名通常是.safetensors或者.ckpt

  1. 从网站中下载模型
  2. 把下载文件放在\SDW根目录\webui\models\Stable-diffusion\文件夹中,点一下SDW界面的刷新按钮。

模型网站推荐:

Civitai(推荐)

这个网站专注于用户共享的 Stable Diffusion 模型,有各种各样的风格模型和 LORA 模型可以下载。社区活跃,模型质量和种类都非常丰富。

Liblib AI(哩布哩布 AI)

哩布哩布(liblib)是一个为 AI 生成模型提供托管和分享服务的国内网站,类似于 Civitai 等平台,用户可以在上面上传、下载和分享 AI 生成模型,包括 Stable Diffusion、LoRA 模型、VAE 模型等。

Hugging Face

Hugging Face 是一个非常著名的机器学习平台,里面有大量由研究人员和开发者上传的模型。你可以找到 Stable Diffusion 的基础模型、微调的模型以及专用领域的变体。

Stability AI

Stability AI 是 Stable Diffusion 背后的团队,网站上提供了官方的模型下载链接以及更新信息。


如果只是想在自己电脑上使用SDW,看到这里就OK了。如果自己有服务器,想要像博主一样搭建一个SDW网站分享给其他人使用的话,那么请看以下的内网穿透教程。


开启SDW局域网共享

SDW自带了许多设置,通过修改webui-user.bat文件以启用或者关闭某些设置,以下是初始文件内容

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=

call webui.bat

设置参数只需要添加在set COMMANDLINE_ARGS=后面,然后保存文件就OK。比如要启用xformers(可以大幅提高跑图速度),那么在等号后面添加--xformers,如果有多个参数,需要用空格隔开。

同样的,我们还需要开启局域网监听(共享),就要修改为

set COMMANDLINE_ARGS=--xformers --listen

SDW有一个--share参数,可以直接生成共享链接,72小时有效,只是我测试的时候发现,并不稳定,如果是临时分享给别人使用的话,也可以将就用用。

更多其他设置参数可以参考项目Wiki中关于参数和设置的内容。

内网穿透

刚刚开启的--listen会把自己本机的7860端口面向局域网开放,利用FRP工具可以将本机的7860端口映射到服务器上的****端口(可以自定义,例如8000)。服务器拥有固定的公网IP地址,而且可以通过反向代理与域名绑定在一起,就可以实现永久固定网址访问了。

服务器端

下载frp软件压缩包并解压,然后编辑配置文件frps.toml

bindAddr = "0.0.0.0" #必须是这个
bindPort = 9000#就是服务器端口,后面的本机电脑端要一致
kcpBindPort = 9003 #随便
dashboardPwd = "odhiodwjpajJJWPdwjpq" #随便
vhostHTTPPort = 9001 #随便
vhostHTTPSPort = 9002 #随便
maxPoolCount = 50
tcpmuxHTTPConnectPort = 9004 #随便

[webServer]
user = "DWIdwhaodih" #随便
password = "1wdqdq32454adwad" #随便
port = 9005 #随便
addr = "0.0.0.0" #必须是这个

[auth]
token = "3234dawAaL15641561VXjb" #随便,后面的本机电脑端要一致

软件目录用终端运行./frps -c ./frps.toml启动服务,最好是用如 systemd 和 supervisor开启进程守护,具体守护教程就自行百度吧。

如果用的是宝塔面板,可以直接在软件商店里搜frp管理器。然后设置一下,端口都可以随便设置,不要重复,最后记得启动服务。

本机电脑端

  1. 下载frp软件压缩包并解压。

  2. 打开frpc.toml文件,编辑内容

serverAddr = "111.111.111.111" #你的服务器IP
serverPort = 9000 #与服务器上的“服务器端口”一致

auth.method = "token"
auth.token = "3234dawAaL15641561VXjb" #需要和服务器端的token一样

[[proxies]]
name = "sd-tcp" #随便起个名
type = "tcp"
localIP = "127.0.0.1"
localPort = 7860 #需要访问的本机端口,SDW默认7860
remotePort = 8000 #服务器对公网开放的端口,也就是用于反向代理的端口

设置好后双击frpc.exe启动服务。

当本机电脑上启动SDW、FRP,同时服务器启动FRP后,就可以通过http://你的服务器IP:8000/访问SDW。最后在服务器上设置一下反向代理,就可以用域名访问了。